/*
 * @Author: lololo 2246223018@qq.com
 * @Date: 2023-12-25 14:22:13
 * @LastEditors: lololo 2246223018@qq.com
 * @LastEditTime: 2023-12-25 14:32:58
 * @FilePath: /demo1/src/service_worker.js
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
function download(url){
    var options={
        url:url
    }
    chrome.downloads.download(options)
}

//接收消息处理器
chrome.runtime.onMessage.addListener(function(message, sender,sendResponse) {
	if (message.type == 'down') {
        //调用下载方法
		download(message.data)
	}
});

function download(url){
    var options={
        url:url
    }
    chrome.downloads.download(options)
}

//通过消息机制获取页面上的image元素
// async function onMenuClick(){
//     //获取当前打开的tab
//     const [tab] = await chrome.tabs.query({active: true, lastFocusedWindow: true});
//     //发送消息，告诉页面，我们需要获取图片元素
//     var response=await chrome.tabs.sendMessage(tab.id,{type:'images'});
//     //循环下载
//     (response||[]).map(download)
// }
async function onMenuClick() {
    //获取当前打开的tab
    const [tab] = await chrome.tabs.query({ active: true, lastFocusedWindow: true });
    //发送消息，告诉页面，我们需要获取图片元素
    var response = await chrome.tabs.sendMessage(tab.id, { type: 'images' });
    var data=response || []
    //获取配置信息
    chrome.storage.local.get(['filterUrl']).then((result) => {
        var value = result['filterUrl'];
        if (value) {
            //循环下载
            data.filter(src => src.indexOf(value) != -1).map(download)
        }else{
            data.map(download)
        }
    });
}


/**
 * 添加右键菜单
 */
chrome.contextMenus.create({
    type: 'normal',
    title: '批量导出',
    contexts:['all'],
    id:'menu-1'
});

/**
 * 右键菜单点击事件
 */
chrome.contextMenus.onClicked.addListener(function(data){
    if(data.menuItemId=='menu-1'){
        onMenuClick(data)
    }
})

/**
 * 消息接收机制
 */
chrome.runtime.onMessage.addListener(function(message, sender,sendResponse) {
	if (message.type == 'down') {
		download(message.data)
	}
});
